package org.liukai.tutorial.service;

import java.util.List;

import org.liukai.tutorial.domain.Authority;
import org.liukai.tutorial.domain.Role;
import org.liukai.tutorial.domain.User;

public interface IAccountService {

	/**
	 * 根据userName获得对应的权限信息.
	 */
	public User getUserInfo(String userName);

	// ======================== user
	/**
	 * 获得所有的User
	 */
	public List<User> getAllUser();

	/**
	 * 根据ID获得User
	 */
	public User getUserById(Integer id);

	/**
	 * 根据UserId删除User
	 */
	public int deleteUser(Integer id);

	/**
	 * 创建一个User
	 */
	public int addUser(User user);

	/**
	 * 更新User
	 */
	public int updateUser(User user);

	/**
	 * 远程验证loginName是否重复.
	 */
	public boolean isLoginNameUnique(String loginName, String oldLoginName);

	// ========================= role

	/**
	 * 获得所有的Role
	 */
	public List<Role> getAllRole();

	/**
	 * 根据ID获得Role
	 */
	public Role getRoleById(Integer id);

	/**
	 * 新增Role
	 */
	public int addRole(Role role);

	/**
	 * 根据RoleId删除Role
	 */
	public int deleteRole(Integer id);

	/**
	 * 更新Role
	 */
	public int updateRole(Role role);

	// ================ authority

	/**
	 * 获得所有的Authority列表
	 */
	public List<Authority> getAllAuthority();

}
